---
title: 创建者模式
description: 创建者模式
sidebar_position: 1
tags: [设计模式]
---
## 代码质量好坏如何评价
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250615132642.png)

### 可维护性
可维护性强的代码指的是: 在不去破环原有的代码设计以及不引入新的 BUG 的前提下，能够快速的修改或者新增代码。
不易维护的代码指的是：在添加或者修改一些功能逻辑的时候，存在极大的引入新的 BUG 的风险，并且需要花费的时间也很长。

### 可读性

软件开发教父，Martin Fowler 曾经说过一句话：“任何傻瓜都能够编写计算机能理解的代码，而优秀的程序员能够编写人类能理解的代码”
### 可扩展性

我们在不修改或少修改原有代码的情况下，通过扩展的方式添加新的功能代码。

### 灵活性
灵活是指在添加新代码的时候，已有代码能够不受影响，不产生冲突，不出现排斥，在保证自身不遭到破坏的前提下灵活地接纳新代码。
1. 添加新的功能代码时，原有代码是否预留了扩展点。
2. 在实现功能模块时，要看原有代码是否已经抽象出了很多可以复用的模块。
3. 在使用某组接口时，是否可以应对多种的场景，满足不同的需求。


### 简洁性
代码的写法应当使别人理解它所需的时间最小化。

### 可复用性
代码的可复用性可以简单地理解为，尽量减少重复代码的编写，复用已有的代码。
### 可测试性
单元测试在一个完整的软件开发流程中是必不可少的、非常重要的一个环节。通常写单元测试并不难，但有的时候，有的代码和功能难以测试，导致写起测试来困难重重。所以写出的代码具有可测试性，具有很重要的作用。

## 编程方法论
想要拥有编写高质量代码的能力，我们就要学习一些编程的方法论，其中就包括面向对象（我们可以把它看成是一种设计思想）、设计原则、设计模式、编程规范、重构技巧等。


![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250615222111.png)
1. 面向对象的思想（基础）
2. 设计原则（指导方针）
3. 设计模式（是设计原则的具体实现）
4. 编程规范（提高代码的可读性）
5. 重构（面向对象的设计思想，设计原则、设计模式、编程规范）
### 面向对象
面向对象是一种编程思想，也是一种编程范式，现在比较流行的编程语言大部分都是面向对象编程语言，而大部分项目也都是基于面向对象编程风格进行开发的。
### 设计原则
设计原则是指导我们代码设计的一些经验总结。在软件开发中，为了提高软件系统的可维护性和可复用性，增加软件的可扩展性和灵活性，程序员要尽量根据设计原则来开发程序，从而提高软件开发效率、节约软件开发成本和维护成本。

1. 单一职责原则
2. 开闭原则
3. 里氏替换原则
4. 依赖倒置原则
5. 接口隔离原则
6. 迪米特法则
### 设计模式
设计模式是针对软件开发中经常遇到的一些设计问题，总结出来的一套解决方案或这设计思路，大部分设计模式要解决的都是代码的可扩展性问题。
### 编程规范
编程规范主要解决的是代码的可读性问题。编程规范相对于设计原则、设计模式，更加具体、更加偏重代码细节。
### 重构技巧
重构代码一词通常是指在不改变代码得外部行为情况下而修改源代码，有时非正式地称为“清理干净”。在极限编程或其它敏捷方法学中，重构常常是软件开发循环的一部分：开发者轮流增加新的测试和功能，并重构代码来增进内部的清晰性和一致性。

**持续的重构是保持代码质量不下降的非常重要的手段。**

## 设计模式概述
### 什么是设计模式
设计模式（Design Pattern）是一套反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

世上本没有路，走的人多了，便成了路。在程序员的世界中，本没有设计模式，写代码的人多了，他们便总结出了一套能提高开发和维护效率的套路，这就是设计模式。


### 设计模式分类
GoF 设计模式有 23 个，它们各具特色，每个模式都为某一个可重复的设计问题提供了一套解决方案。根据它们的用途，设计模式可分为：
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250618005523.png)
#### 创建型模式（5种）
提供创建对象的机制，提升已有代码的灵活性和可复用性。
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250618005805.png)
#### 结构型模式（7种）
如何将对象和类组装成较大的结构，并同时保持结构的灵活和高效。
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250618005915.png)
#### 行为模式（11种）
负责对象间的高效沟通和职责的传递委派
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250618010005.png)
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250618010026.png)
